//package eu.best.sercheng.indexer;
//
//import java.util.ArrayList;
//import java.util.Collections;
//import java.util.Comparator;
//import java.util.HashMap;
//import java.util.List;
//import java.util.StringTokenizer;
//
//import edu.princeton.cogsci.wn.WordNetImpl;
//import edu.princeton.cogsci.wn.ascii.*;
//
//public class Indexer {
//	
//	class DocumentDescription {
//		String url;
//		String text;
//	}
//	class PairStruct {
//		String keyword;
//		int idNumber;
//		
//		public PairStruct(int idNumber, String keyword) {
//			this.idNumber = idNumber;
//			this.keyword = keyword;
//		}
//	}
//	
//	class PairComparator implements Comparator<Object> {
//
//		@Override
//		public int compare(Object o1, Object o2) {
//			 return (((PairStruct)o1).keyword).compareTo(((PairStruct)o2).keyword);
//		}
//		
//	}
//	
//
//	
//	private List<DocumentDescription> docDescriptionsList = new ArrayList<DocumentDescription>();
//	private HashMap idDocumentMap = new HashMap<Integer, String>();
//	private HashMap horizontalIndex;
//	private HashMap verticalIndex;
//	private List<PairStruct> pairList = new ArrayList<Indexer.PairStruct>();
//	WordNetImpl wordNetImpl = new AsciiWordNetImpl();
//	
//	
//	public Indexer() {
//		horizontalIndex = new HashMap<Integer, List<String>>();
//		verticalIndex = new HashMap<String, List<Integer>>();
//	}
//	
//	public void getInputDataFromDatabase() {
//		//TODO
//	}
//	
//	public void preparePairListForVerticalIndex(String word, int idNumber ) {
//		pairList.add(new PairStruct(idNumber,word));
//	}
//	public void createHorizontalIndex() {
//		int size = docDescriptionsList.size();
//		for(int i=0; i< size; i++){
//			idDocumentMap.put(new Integer(i), docDescriptionsList.get(i).url);
//			String text = docDescriptionsList.get(i).text;
//			splitInWords(text,i);
//		}
//	}
//
//	//Split the text in words 
//	private void splitInWords(String text, int idNumber)
//	{
//		String delim= " -=!@#$%^&*()_+[]\\';,./{}|:<>?\n\r\t\"";
//		StringTokenizer st = new StringTokenizer(text,delim);
//		List<String> tempString = new ArrayList<String>();
//		String temp;
//	     while (st.hasMoreTokens()) {
//	    	//reduce word 
//	    	  	 
//		    temp=st.nextToken();
//		    temp = WordNetImpl.toCanonicalForm(temp);
//	    	tempString.add(temp);
//	    	//Call verticalIndex function
//	    	preparePairListForVerticalIndex(temp,idNumber);  	
//	    	//  Smstem.out.println(st.nextToken());
//	     }
//	     horizontalIndex.put(idNumber, tempString);
//	}
//	
//	private void createVerticalIndex() {
//		Collections.sort(pairList,new PairComparator());
//		
//		for(PairStruct ps: pairList) {
//			List<Integer> list = (List<Integer>) verticalIndex.get(ps.keyword);
//			if(list == null) {
//				list = new ArrayList<Integer>();
//				list.add(ps.idNumber);
//			}
//			else {
//				list.add(ps.idNumber);
//			}
//		}
//	}
//
//}
